package com.triones.api.entity.interlace.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * interlaceCrypto转移记录
 */
@TableName(value = "tr_interlace_transfers")
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class InterlaceTransfersDO {
    @TableId(value = "id")
    private Long id;
    /**
     * 用户id
     */
    private Long uid;
    /**
     * 交易编号
     */
    private String sn;
    /**
     * 幂等性密钥
     */
    private String idempotencyKey;
    /**
     * 账号id
     */
    private String accountId;
    /**
     * 来源类型
     */
    private String sourceType;
    /**
     * 来源钱包
     */
    private String sourceWalletId;
    /**
     * 来源链
     */
    private String sourceChain;
    /**
     * 来源区块链地址
     */
    private String sourceAddress;
    /**
     * 来源币种
     */
    private String sourceCurrency;
    /**
     * 来源数量
     */
    private BigDecimal sourceAmount;
    /**
     * 目的类型
     */
    private String destinationType;
    /**
     * 目的钱包id
     */
    private String destinationWalletId;
    /**
     * 目的链
     */
    private String destinationChain;
    /**
     * 目的区块链地址
     */
    private String destinationAddress;
    /**
     * 目的币种
     */
    private String destinationCurrency;
    /**
     * 目的数量
     */
    private BigDecimal destinationAmount;

    /**
     * 交易哈希
     */
    private String transactionHash;
    /**
     * 风险等级 low middle high severe
     */
    private String riskLevel;
    /**
     * 场景 crypto_assets_out：资产转出、crypto_assets_in 资产转入、assets_withdrawal：提币、assets_deposit：充值、buy：换汇（买入）、sell：换汇（卖出）
     */
    private String scene;
    /**
     * 以该币种为结算标准-币种（换汇）
     */
    private String rfqCurrency;
    /**
     * 以该币种为结算标准-数量（换汇）
     */
    private BigDecimal rfqAmount;
    /**
     * 比例（换汇）
     */
    private String rate;
    /**
     * 币种对（换汇）
     */
    private String symbol;
    /**
     * interlace响应id（当为换汇时，最初是内部转移的id、待转移成功后才是响应id）
     */
    private String rid;
    /**
     * 状态 Pending、Closed、Fail、PendingEffect：待生效
     */
    private String status;
    /**
     * 创建时间
     */
    private Long createTime;
    /**
     * 更新时间
     */
    private Long updateTime;
    /**
     * 平台协调使用
     */
    private String transferId;
    /**
     * 等待处理：0：不用处理、1：等待处理
     */
    private String waitFulfill;
}
